package com.thb.pay.manage.comm.shiro;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

/**
 * @类名称 Demo
 * @类描述 <pre></pre>
 * @作者 xufuzhou xufuzhou@tansun.com.cn
 * @创建时间 2019/9/3
 * @版本 v1.01
 * @修改记录 <pre>
 * 版本 修改人 修改时间 修改内容描述
 * ----------------------------------------------
 * 1.00 卢世杰 20170701 新建
 * 1.01 洪金龙 20170801 修改规则查询
 * ----------------------------------------------
 * </pre>
 */
public class Demo<T> {

    public T demo() throws IllegalAccessException, InstantiationException {
        Class<?> clazz = this.getClass();
        Type type = clazz.getGenericSuperclass();
        if (type instanceof ParameterizedType) {
            type = ((ParameterizedType) type).getActualTypeArguments()[0];
        }
        T t = ((Class<T>) type).newInstance();
        return t;
    }
}
